home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mac Magazin/MacEasy 19
/
Mac Magazin and MacEasy Magazine CD - Issue 19.iso
/
Wissenschaft & Technik
/
Alpha
/
Help
/
HTML Help
< prev
next >
Wrap
Text File
|
1995-11-16
|
16KB
|
430 lines
================================================================================
= What's Going On Here?
================================================================================
New! Command-double-clicking on a point attempts to open a URL in the
surrounding text and send it to your web browser. See here for more
details.
HTML Mode is for editing HyperText Markup Language documents (suffix
".html"). It is not a previewer, nor is it a verifier. If you don't
know about HTML or the WorldWideWeb, FTP to ftp.netscape.com and pick
up their "Netscape" client to start with. Run it and click on the
interesting buttons.
One of the fundamental concepts behind this HTML environment is to
avoid use of the mouse unless it's really advantageous. Too many
environments slow down your work, and hurt your hands, by forcing you
to go back and forth between mouse and keyboard.
When you use this package, by default you will see bullet characters
(•, option-8) being dribbled near where you insert elements. These
are supposed to be a feature. The tab key takes you to the next one.
For example, if you insert a header, the cursor will be inside the
header element, with a bullet after it. Type in the header text and
hit tab to go to the bullet (and automatically delete the bullet). If
you like, you may ignore the bullets and at any time either press
cmd-tab or select "Remove Marks" from the HTML menu to eliminate all
of them. If you never want these at all, turn off the flag
htmlUseTabMarks (see the section on User-Settable Variables).
Without Pete Keleher's ongoing development of Alpha this wouldn't have
been possible in the first place. I am also indebted to the authors
of the original html.el for GNU Emacs and latex.tcl for Alpha, from
whom I originally took ideas and some tcl code.
I want feedback. I'm Scott Brim <swb@nr-atp.cit.cornell.edu>. This
is "opinionware" -- if you use it regularly, you should tell me your
opinion. If you want to hear about beta releases, send me mail and
I'll put you on the list.
===============================================================================
= The HTML Menu
===============================================================================
Headers - Insert section headers, from H1 to H6.
Text Blocks - These are various text-blocks. Not all are here,
since some have enough importance to merit their own sections.
However paragraph (<p>) is one to note under here.
Styles - Emphasis, etc.
Links - Hypertext links TO and FROM other points, plus images.
Lists - All kinds.
Forms - The elements for building forms.
Tables - The elements for building tables.
Character Entities - The entities for characters, for example ü is
ü. The "short" list at the top can be added to
with the "Add" item. All possible entities are
on the "all" menu.
Other Elements - Things which don't fit elsewhere.
Select Container - Selects matching tags which include the current
selection. Repeated, it expands the selection.
Like the "Balance" item under the Edit menu.
Untag - Removes a tag pair surrounding the current position
or selection.
Remove Marks - Removes the •'s throughout the document.
New doc template - Produces <HTML>, <HEAD> and <BODY> elements.
URLs - Everything for managing the URL cache.
HTML mode accumulates a list of the URLs you use in
your HREFs, and saves the list across invocations of Alpha
(so it can help you to put in new URLs rapidly). After
a while this list can get large. When you select "Clean
up" you will be presented with a list. Use the
mouse to shift-click and select the URLs you want to keep.
The rest will be expunged. If you select text, or copy
text from another application into the Mac clipboard, you
can insert this into the URL cache as a new URL.
Use Attributes - You don't have to be asked about all possible
attributes for every element. You can select
which ones you want to be asked about. HTML Mode
comes configured to ask about the most popular ones.
HTML Helpers - You can launch various applications to view/check your
HTML.
================================================================================
= Key Bindings
================================================================================
If you are using the default options, almost all key bindings are on
control-option, except for a few conflicts which I put on
shift-control-option and a few miscellaneous ones.
Here are the bindings, with comments, straight from html.tcl.
#
# new file template and headers
#
ctl-opt-0 NewTemplate # 0 before any headers
ctl-opt-1 Header1
ctl-opt-2 Header2
ctl-opt-3 Header3
ctl-opt-4 Header4
ctl-opt-5 Header5
ctl-opt-6 Header6
#
# Blocks
#
ctl-opt-Return Paragraph
Enter Paragraph # for powerbooks
ctrl-M Paragraph
ctl-opt-; Comment
ctl-opt-a Address
ctl-opt-q Blockquote # q for quote
ctl-opt-p Preformatted
# CENTER doesn't have a binding, since it will most likely go away
#
# Styles
#
ctl-opt-e Emphasized
ctl-opt-s Strong
ctl-opt-b Bold
ctl-opt-c Code
ctl-opt-v Varname
shift-ctl-opt-c Cite
ctl-opt-k Keyboard
ctl-opt-i Italic
ctl-opt-f TT
#
# Links
#
ctl-opt-, Anchor # "<" is something pointed at
ctl-opt-. Href # ">" points to it
ctl-opt-/ Image # "/" is right next to ">"
#
# Lists
#
ctl-opt-u Bulleted (UL)
ctl-opt-o Numbered (OL)
ctl-opt-d Directory
ctl-opt-m Menu
ctl-opt-n ListEntry # n is for 'eNtry'
ctl-opt-g BuildDiscList # g is for 'Glossary'
shift-ctl-opt-n DiscEntry # N, eNtry with shift key
#
# Forms
#
shift-ctl-opt-f Form
shift-ctl-opt-s Select
shift-ctl-opt-o Option
shift-ctl-opt-i Input
shift-ctl-opt-t Textarea
#
# Character entities
#
# Only <, > and & are bound, to shift-cmd-opt-<char>
# The other entities can only be accessed from the menu.
shift-ctl-opt-, LessThan
shift-ctl-opt-. GreaterThan
shift-ctl-opt-7 Ampersand
#
# Other
#
ctl-opt-! linebreak # shift-ctl-opt-1 for <BR>
ctrl-C L commentline # for internal aesthetics
#
# Miscellaneous
#
cmd-B select container
shift-ctl-opt-u untag around the selection
cmd-shift-s launch a browser
Tab TabNext
Shift-Tab TabPrevious
================================================================================
= Other Possible Key Bindings
================================================================================
It is possible to change the keybindings in two ways. First, by changing
the variables htmlPrefixString and htmlSPrefixString (see below, and
remember to change the Menu-related strings as well). Second, by using
the Alpha 'bind' command.
Here are some simple bindings, included as samples of what is possible.
For example, if you are using an international keyboard to produce German
HTML, you might put these lines in your prefs.html (under the Edit
menu). For more complicated examples see the html.tcl source.
bind 0x27 <s> {insertText "Ä\;"} "HTML"
bind 0x27 {insertText "ä\;"} "HTML"
bind 0x29 <s> {insertText "Ö\;"} "HTML"
bind 0x29 {insertText "ö\;"} "HTML"
bind 0x21 <s> {insertText "Ü\;"} "HTML"
bind 0x21 {insertText "ü\;"} "HTML"
bind 0x1b {insertText "ß\;"} "HTML"
================================================================================
= User-Settable Flags and Variables
================================================================================
HTML mode is highly customizable. You can modify its behavior in one
of three ways.
If you don't know what any of the following means, ignore it for now.
You will eventually.
(1) Most HTML variables are simple things, for example the number of
entries you want in a new discursive list. Almost all are set by
using the Flags menu (click on the little flag on the side of the
window the HTML file is in -- if you don't see the mode's flags and
variables, select "Mode Info" near the bottom of the menu and try
again).
FLAGS
-----
wordWrap - Newlines are automatically inserted as you type. The
default is 1, lines will be wrapped.
prefixString - The string to begin an HTML comment, and the one to
suffixString - end a comment. Generally a bad idea to change these.
useStatusBar - If an element has attributes, and this is set, the
attributes will be asked about in the status bar.
Otherwise they will be asked about in popup prompt
windows. The default is 0, do not use the status bar.
When using popups, an attribute can be skipped by
clicking "cancel" or pressing cmd-..
When using the status bar, at any point pressing cmd-v
will paste the contents of the clipboard. Also, at
any point the tab key will match what you have typed
against your options, and complete what you have typed
as much as possible. For example, when prompted with
"align=", you can type "m" and tab, and Alpha will fill
in "iddle". When you are entering a URL, if you hit
tab twice in a row, you will be presented with a menu
of URLs you have used before. To approve the selection
press return. You can also back up over what has been
filled in and change it. Try the tab key even when
nothing is showing. Understanding how best to use it
takes some use.
promptNoisily - If useStatusBar is set, Alpha will beep when
asking for element attribute information there. The
default is 1, do beep.
useLowerCase - If 0, elements will be like <P>; if 1, like <p>.
The default is 0, upper case.
useTabMarks - If 0, will not insert the • characters. The
default is 1, to insert them.
allContainers - If set, <P>, <LI>, and <DD> have
corresponding closing tags. If not set the optional
closing tags are skipped. The default is 1, make them
containers.
browseInForeground - if set, when you send a file to the browser, the
browser will be brought to the foreground. If you
have lots of screen space and are just validating,
uncheck this flag to leave the browser in the
background and Alpha in the foreground. The
default is 1, bring browser to foreground.
Most browsers will *only* launch in the foreground
when they are first brought up, regardless of your
flag setting. This is not an Alpha bug.
VARIABLES
---------
DLEntries - The default number of DD/DT entries for a new discursive
list. The default is 3.
URLAttrs - Element attributes which are URLs and will involve
the URL cache. If you modify it, don't forget the
"="s. Most easily modified as in (3) below.
quotedAttrs - Element attributes which must usually be in
quotation marks. If you modify it, don't forget
the "="s. Most easily modified as in (3) below.
htmlBindPrefix - The control keys for most keybindings. Default is
control-option.
htmlSBindPrefix - The control keys for most other keybindings.
Default is shift-control-option.
htmlMenuPrefix - This is the string
which controls the icons to show in the HTML menu
for commands bound with htmlBindPrefix. The
default is "<B<I".
htmlSMenuPrefix - The same for htmlSBindPrefix. The default is
"<U<B<I".
(2) One set of variables is more complex and is set another way. This
is the list element attributes you usually usually want to be asked
about when creating new elements -- for example, whether you want to
be asked about COMPACT when creating a UL list. These are set using
the "Use Attributes" menu item on the main HTML menu. If you think
the defaults should be different in the distribution, tell me.
(3) Finally, to extend HTML mode into new territory, for example to add a
new element, you will need to do some TCL "set" commands in your
prefs.html (Edit -> Edit prefs.html). You need to add to some list and
array variables. Some are available through the flag menu to the right of
the edit window, but it's difficult to edit these there. Do everything in
upper case! When you're done, send your additions to me!
HTMLmodeVars(quotedAttrs) - attributes which require quotation marks
around them. A list.
HTMLmodeVars(URLAttrs) - attributes which take URLs as values. A
list.
HTMLmodeVars(elemAttrsForAll) - All elements are allowed to
have these attributes. They will not
be prompted for unless they are in
HTMLElemAttrChoices for an element
being built. A list.
HTMLwords - keywords which should be highlighted when
editing HTML in Alpha. A list.
htmlElemAttrAll - An array of all known HTML Elements. Each
entry is a list of attributes for that
element. For example htmlElemAttrAll(FORM)
is {ACTION= METHOD= ENCTYPE=}. Be sure to
include the trailing = if an attribute
takes values.
htmlElemAttrChoices - An array. Each entry is an element name,
and the content is all of the choices for
those attributes which have limited ones.
If a value can be anything, e.g.
NAME="frob", it won't be here. However,
htmlElemAttrChoices(IMG) is {ALIGN=TOP
ALIGN=MIDDLE ALIGN=BOTTOM}. Include
all attributes for which there are choices.
The entry for INPUT has all possibilities
for TYPE and ALIGN.
htmlElemAttrUsed - This is the array of attributes you
want to be prompted for each time. Usually
you don't change it explicitly. Use the
menu selection "Use Attributes".
===============================================================================
= Custom Menu Entries
===============================================================================
There is a top-level entry in the HTML menu, "Custom", under which
you may add new elements -- or any other procedures -- by adding
some simple TCL code to your userStartup.tcl (under the Utils menu,
userStartup -> Edit).
First, define the list of elements to be listed in the menu. Do this
by setting the variable htmlCustomMenuList. For example:
set htmlCustomMenuList {"Blink" "Style" "Frob"}
Then define the procedures to execute when these items are selected.
HTML Mode offers 4 utility procedures which you can use:
htmlBuildElem, htmlBuildCRElem, htmlBuildCR2Elem, and htmlOpenElem.
The first three create opening and closing tags, while htmlOpenElem
just creates a single tag. htmlBuildElem surrounds the element with
no whitespace; htmlBuildCRElem puts it on its own line, and
htmlCR2Elem surrounds it with blank lines. They all insert the
resulting element in the document EXCEPT htmlOpenElem, where you
must use insertText yourself.
The procedure name HTML mode will look for will be "htmlElem"
followed by the exact name in your menu entry.
So here are some sample procedures:
proc htmlElemBlink {} { htmlBuildElem BLINK }
proc htlmElemStyle {} { htmlBuildCRElem STYLE }
proc htmlElemFrob {} { insertText [htmlOpenElem FROB] }
Of course you can make your procedures as complex as you like.
The customization will use any attribute lists you might build, so
for example you could have (as described under User-Settable Flags
and Variables):
set htmlElemAttrAll(FROB) {ALIGN= SELECTOR POINTED}
set htmlElemAttrChoices {ALIGN=BOTTOM ALIGN=MIDDLE ALIGN=TOP}
set htmlElemAttrUsed {ALIGN= POINTED}